package unmsm.fisi.tesis.web.mb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import unmsm.fisi.tesis.dao.HallazgoDAO;
import unmsm.fisi.tesis.dao.OrganizacionDAO;
import unmsm.fisi.tesis.dao.ReportesDAO;
import unmsm.fisi.tesis.entidad.Hallazgo;
import unmsm.fisi.tesis.entidad.Organizacion;

@ManagedBean(name = "org")
@RequestScoped
public class OrganizacionMB implements Serializable{
	
	private static final long serialVersionUID = 1L;
	private String nombre;
	private List<Hallazgo>  listaHallazgos;
	private String photo;
	

	public OrganizacionMB() {
		
		 RingBeanOrganizacion();
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	// autocompletes
	public List<String> completeOrganizacion(String query) {
		List<String> results = new ArrayList<String>();
								
		List<Organizacion> organizacions= OrganizacionDAO.obtenerOrganizaciones("");

		for (Organizacion organizacion : organizacions) {

			if (organizacion.getNombre().toUpperCase().startsWith(query.toUpperCase())
					|| organizacion.getSigla().toUpperCase().startsWith(query.toUpperCase())) {

				results.add(organizacion.getNombre());
			}

		}

		return results;
	}
	
	public void buscar(){
		
		listaHallazgos = HallazgoDAO.obtenerHallazgosPorOrganizacion(getNombre()) ;
				//OrganizacionDAO.obtenerOrganizaciones(organizacion.getNombre());
	}

	public List<Hallazgo> getListaHallazgos() {
		return listaHallazgos;
	}

	public void setListaHallazgos(List<Hallazgo> listaHallazgos) {
		this.listaHallazgos = listaHallazgos;
	}

	
	
	
	private List<Organizacion> listaOrganizaciones;
	 
    private Organizacion selectedOrganizacion;
    
 
    public void RingBeanOrganizacion() {
    	listaOrganizaciones = new ArrayList<Organizacion>();
 
    	listaOrganizaciones.add(new Organizacion(1,"OMS",null,100,15,"1","OMS.png"));
    	listaOrganizaciones.add(new Organizacion(2,"AAEC",null,100,15,"1","AACE.gif"));
        listaOrganizaciones.add(new Organizacion(3,"AHA",null,100,15,"1","AHA.jpg"));
        listaOrganizaciones.add(new Organizacion(4,"NCEP-ATP III",null,100,15,"1","ATPIII.JPG"));
        listaOrganizaciones.add(new Organizacion(5,"IDF",null,100,15,"1","IDF.jpg"));
        listaOrganizaciones.add(new Organizacion(6,"ACE",null,100,15,"1","ACE.jpg"));
        listaOrganizaciones.add(new Organizacion(7,"EGIR",null,100,15,"1","EGIR.JPG"));
        
        }
 
    public List<Organizacion> getListaOrganizaciones() {
        return listaOrganizaciones;
    }
 
   	public String getPhoto() {
		return photo;
	}

	public void setPhoto(String photo) {
		this.photo = photo;
	}
	 public void selected(ActionEvent event){
	    	
		  this.selectedOrganizacion= (Organizacion)event.getComponent().getAttributes().get("myattribute");;
	    
	 }
	 

	public Organizacion getSelectedOrganizacion() {
		String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("myId");
		if(id!=null){
			int myId = Integer.parseInt(id);
			selectedOrganizacion = listaOrganizaciones.get(myId-1);
			listaHallazgos = HallazgoDAO.obtenerHallazgosPorOrganizacion(selectedOrganizacion.getNombre().replace(".", "").trim() );
		}
		return selectedOrganizacion;
	}

	public void setSelectedOrganizacion(Organizacion selectedOrganizacion) {
		
			this.selectedOrganizacion = selectedOrganizacion;
	}
	

	

}
